﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data.Objects.DataClasses;

namespace Hotel.Models
{
    public partial class ContexteDAO
    {
        private static HOTELEntities _ContexteDonnees;
        internal static HOTELEntities ContexteDonnees
        {
            get { return ContexteDAO._ContexteDonnees; }
            set { ContexteDAO._ContexteDonnees = value; }
        }

        static ContexteDAO()
        {
            ContexteDAO.ContexteDonnees = new HOTELEntities(ConfigurationManager.ConnectionStrings["HOTELEntities"].ConnectionString);
            //CnnString_Hotel
        }

        public static void Enregistrer()
        {
            ContexteDAO.ContexteDonnees.SaveChanges();
        }
    }

    //extension de la classe de base dont dérivent toutes les entités
    public static class EntityObjectExtension
    {
        public static void Ajouter(this EntityObject aObject)
        {
            ContexteDAO.ContexteDonnees.AddObject(aObject.GetType().Name, aObject);
            ContexteDAO.Enregistrer();
        }

        public static void Supprimer(this EntityObject aObject)
        {
            ContexteDAO.ContexteDonnees.DeleteObject(aObject);
            ContexteDAO.Enregistrer();
        }

        public static void Rafraichir(this EntityObject aObject)
        {
            ContexteDAO.ContexteDonnees.Refresh(System.Data.Objects.RefreshMode.StoreWins, aObject);
        }
    }
}
